package br.com.javamagazine.leilaojm.managedbean;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.javamagazine.leilaojm.domain.Avaliacao;
import br.com.javamagazine.leilaojm.ejb.AvaliacaoService;

@Named
@RequestScoped
public class AvaliacaoBean implements Serializable {

	private static final long serialVersionUID = -3683632952986568290L;

	@EJB
	private AvaliacaoService avaliacaoService;

	@Inject
	private ModeloBean modeloBean;

	@Inject
	private Avaliacao avaliacao;

	public String listaAvaliacoesDoModelo() {
		List<Avaliacao> avaliacoes = avaliacaoService
				.listaAvaliacoesDoModelo(modeloBean.getModelo().getId());
		modeloBean.getModelo().setListaAvaliacoes(avaliacoes);

		return "listarAvaliacoesPasso2.xhtml";
	}

	public void cadastrarAvaliacaoModelo() {
		avaliacao.setModelo(modeloBean.getModelo());
		avaliacaoService.salvaAvaliacao(avaliacao);
		modeloBean.getModelo().getListaAvaliacoes().add(0, avaliacao);
		// adiciona mensagem de sucesso
		FacesMessage fm = new FacesMessage("Sucesso ao cadastrar avaliação");
		fm.setSeverity(FacesMessage.SEVERITY_INFO);
		FacesContext.getCurrentInstance().addMessage("form", fm);
		avaliacao = new Avaliacao();
	}

	public Avaliacao getAvaliacao() {
		return avaliacao;
	}

	public void setAvaliacao(Avaliacao avaliacao) {
		this.avaliacao = avaliacao;
	}

}
